package com.benben.springSecurity.weiwei;

public class ZhengZeBiaoDaShiPattern {
    //思路：如果模式串中有*，它会出现在第二个位置，即pattern[1]，这种情况下我们可以直接忽略模式串的这一部分，例如：aab和c*aab
    //或者删除匹配串的第一个字符，前提是它能够匹配模式串当前位置字符，即pattern[0]
    //如果这两种操作中有任何一种使得剩下的字符串能匹配，那么初始时匹配串和模式串就可以被匹配
    public static boolean isMatch(String text, String pattern) {
        if(pattern.isEmpty()){
            return text.isEmpty();
        }
        boolean first_match = (!text.isEmpty() && (pattern.charAt(0)==text.charAt(0) || pattern.charAt(0) == '.'));
        if(pattern.length()>=2 && pattern.charAt(1)=='*'){
            return (isMatch(text,pattern.substring(2)) || (first_match && isMatch(text.substring(1),pattern)));
        }else{
            return first_match && isMatch(text.substring(1),pattern.substring(1));
        }

    }
    public static void main(String[] args) {
        System.out.println(isMatch("a","a*"));
    }
}
